#ifndef GROUPMODEL_H
#define GROUPMODEL_H

#include "group.hpp"
#include <string>
#include <vector>
using namespace std;

// 维护群组信息的操作接口方法
class GroupModel
{
public:
    // 创建群组
    bool createGroup(Group &group);
    // 加入群组
    void addGroup(int userid, int groupid, string role);
    // 查询用户所在群组信息
    vector<Group> queryGroups(int userid);
    // 根据指定的groupid查询群组用户id列表，除userid自己，主要用户群聊业务给群组其它成员群发消息
    vector<int> queryGroupUsers(int userid, int groupid);
    //确认这个成员是否在这个组里（这是许多组操作的前提条件）
    bool isInGroup(int userid, int groupid);
    //查询该id在某个组里的职位
    std::string queryRole(int userid, int groupide);
    //改变组成员的身份
    bool changeRole(int userid,int groupid,int targetid,std::string newrole);
};

#endif